% auto_plot.m

% === 可配置参数 ===
csvFileName = 'pid1_out.csv';     % CSV 文件名
refreshPeriod = 1.0;                 % 刷新周期（单位：秒）

% 创建定时器
t = timer('ExecutionMode', 'fixedRate', ...
    'Period', refreshPeriod, ...
    'TimerFcn', @(~,~) safePlot(csvFileName));

% 启动定时器前先创建图形窗口，并保持它不变
figure(1); % 只创建一次
title('Stacked Plot Auto Refresh - Waiting...');

start(t);

disp(['已启动定时器，每 ', num2str(refreshPeriod), ' 秒刷新文件: ', csvFileName])
input('按回车键停止并退出...\n', 's');

% 停止并删除定时器
stop(t);
clear('t');

disp('del t');

%% 安全绘图函数
function safePlot(filename)

try

    % 读取数据
    data = readtable(filename, 'ReadVariableNames', true);


    % 清除当前 figure，不新建窗口
    figure(1); clf;

    % 绘图
    h = stackedplot(data);

    % 添加标题显示时间
    title(['[更新时间: ' char(datetime('now')) ']']);

catch ME
    % 报告错误但不停止定时器
    fprintf('❌ 错误: %s\n', ME.message);
end
end